function isEmpty(value)
{
	return value == '' || value == null;
}

function isMail(value)
{
	return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(value);
}

function isAlphabet(value)
{
	return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(value);
}

function isUrl(value)
{
	return /^(ht|f)tp(s?)\:\/\/(([a-zA-Z0-9\-\._]+(\.[a-zA-Z0-9\-\._]+)+)|localhost)(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?([\d\w\.\/\%\+\-\=\&amp;\?\:\\\&quot;\'\,\|\~\;]*)$/.test(value);
}

function isUrl(value)
{
	return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(value);
}
function isMobile(value)
{ 
	return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(value); 
}

function isPostcode(value)
{ 
	if(value.length!=6)
	{
		return false;
	}
	return /^(\d+)$/.test(value); 
}

function isPhone(value)
{
    //兼容格式: 国家代码(2到3位)-区号(3到4位)-电话号码(7到8位)-分机号(3位)
//    return /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/.test(value);
    return /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(value);
}

function checkIdCardDate(dateX)
{
	var patter = /^\d{2,4}\d{2}\d{2}$/;
	return patter.test(dateX);
}

function isIdCardNo(num) {
	var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
	var error;
	var varArray = new Array();
	var intValue;
	var lngProduct = 0;
	var intCheckDigit;
	var intStrLen = num.length;
	var idNumber = num;
	// initialize
	if ((intStrLen != 15) && (intStrLen != 18)) {
		error = "输入身份证号码长度不对！";
		alert(error);
		return false;
	}    
	// check and set value
	for(i=0;i<intStrLen;i++) {
		varArray[i] = idNumber.charAt(i);
		if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
		error = "错误的身份证号码！.";
		alert(error);
		return false;
	} 
	else if (i < 17) {
		varArray[i] = varArray[i]*factorArr[i];
		}
	}
	if (intStrLen == 18) {
		//check date
		var date8 = idNumber.substring(6,14);
		if (checkIdCardDate(date8) == false) {
		error = "身份证中日期信息不正确！.";
		alert(error);
			return false;
		}        
		// calculate the sum of the products
		for(i=0;i<17;i++) {
			lngProduct = lngProduct + varArray[i];
		}        
		// calculate the check digit
		intCheckDigit = 12 - lngProduct % 11;
		switch (intCheckDigit) {
			case 10:
				intCheckDigit = 'X';
				break;
			case 11:
				intCheckDigit = 0;
				break;
			case 12:
				intCheckDigit = 1;
				break;
			}        
		// check last digit
		if (varArray[17].toUpperCase() != intCheckDigit) {
			error = "身份证效验位错误!正确为： " + intCheckDigit + ".";
			alert(error);
			return false;
		}
	}
	else{        //length is 15
		//check date
		var date6 = idNumber.substring(6,12);
		if (checkIdCardDate(date6) == false) {
			alert("身份证日期信息有误！.");
			return false;
		}
	}
	//alert ("Correct.");
		return true;
}

